package cn.j229.bug.zhongxuan.controller;

import cn.j229.bug.zhongxuan.BusinessException;
import cn.j229.bug.zhongxuan.service.SysUserService;
import cn.j229.bug.zhongxuan.util.JsonResult;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.util.Map;

@Controller
@RequestMapping("/user")
public class UserController {
      // 路径中带一个参数
//    @PostMapping("/login/id/{id}")
//    // @PathVariable 作用：获取路径中{id}的值，并注入到参数id中
//    public void login(@PathVariable Integer id){
//        System.out.println("id:" + id);
//    }

    // 路径中带多个参数
//    @PostMapping("/login/id/{id}/jobNumber/{jobNumber}")
//    public void login(@PathVariable("id") Integer id,@PathVariable("jobNumber") String jobNumber){
//        System.out.println("id：" + id + ",jobNumber：" + jobNumber);
//    }
    @Resource
    SysUserService sysUserService;

    // 当前端在data中传递参数：
    @PostMapping("/login")
    @ResponseBody
    public Map login(@RequestParam("jobNumber") String jobNumber, @RequestParam("password") String password) throws BusinessException {
        System.out.println("jobNumber：" + jobNumber + ",password：" + password);
        Boolean login = null;
        // 做数据校验(数据格式的合法性,使用第三方工具)
        if(jobNumber != null && !"".equals((jobNumber)) && (password != null && !"".equals((password)))){
            // 调用对应的service执行登录验证方法(通过Spring给service对象注入)
            login = sysUserService.login(jobNumber, password);
        }
        // 把登录验证结果给前端反馈
        JsonResult jsonResult = new JsonResult();
        if(login){
            jsonResult.setCode("200");
            jsonResult.setMsg("登录成功！"+ login);
        }else {
            throw new BusinessException("登录失败，请检查用户工号或密码！");
        }
        return jsonResult.getValues();
    }


//    @PostMapping("/login")
//    public void login(@RequestBody SysUser sysUser){
//        System.out.println("SysUser：" + sysUser);
//    }

    // 使用Map去获取任意数量，任意名称的前端数据
    // 依然用@RequestBody注入，且前端依然配置：post + Content-Type + json格式数据
//    @PostMapping("/login")
//    public void login(@RequestHeader("token") String token,@RequestBody Map<String,String> map){
//        System.out.println("token：" + token);
//        System.out.println(map);
//    }



}
